<?php

  // Pour ajouter des équipes
  // auteur : sebastien Mosser
  
class sfManagePicture extends aSubFeature {

   public function __construct() {
      $this->_acl = new AccessControlList();
      $this->_acl->setGranted(1, AccessControlList::$JUST_ME); // Entraineur
      $this->_acl->setGranted(7);
      $this->_acl->setGranted(3);
      $this->_acl->setGranted(2);
   }

  protected function run() {
  	
  	$idTeam = PropRetriever::getProp($_POST,"teamId");
		$perm = $this->_acl->isExposable(Login::getGroups());
		
		try {
			$aTeam = Team::read($idTeam);
		}
		catch(Exception $e) {
			$page = "<h1>Une erreur fatale est survenue ! </h1><br /> <br />"; 
			$page .= "<div align=\"center\"> <span class=\"error\">";
			$page .= 
					"L'équipe d'identifiant Balloon <code>[$idTeam]</code> n'éxiste pas!";
			return $page;
		}

		if ($perm == AccessControlList::$JUST_ME) {
			if (! $aTeam->canEdit(Login::getLoginId())) {
				// On a pas le droit de faire des modifs dans cette équipe !
				$page = <<<EOS
<h1> Une erreur est survenue ! </h1>
<div align="center">
<p> <span class="error">Vous n'êtes pas autorisé a faire des modifications dans cette équipe car vous n'en êtes pas l'administrateur.</span></p>
</div>
<p> Si vous pensez qu'il s'agit d'une erreur, contactez le secrétariat du club qui pourra vous autoriser à y acceder.</p>
<p> Pour pouvoir modifier une équipe, vous devez être déclaré : 
<ul>
  <li> Administrateur de l'équipe </li>
  <li> Administrateur de catégorie </li>
  <li> Membre du groupe <code> Secretariat </code> </li>
  <li> Membre du groupe <code> Recrutement </code> </li>
  <li> Membre du groupe <code> Administrateur Système </code> </li>
</ul>
EOS;
				return $page;
			}
		}
		return $this->process($aTeam);
	}
	
	private function process($team) {
		$action = PropRetriever::getProp($_POST,"action");
		if ($action == "load")
			return $this->addPic($team);
		else if ($action == "del")
			return $this->delPic($team);
		else
			return $this->displayform($team);
	}
	
	private function delPic($team) {
		$team->delPicture();
		$team->update();
		return $this->displayForm($team);
	}
	
	private function addPic($team) {
		$upFile = new UploadedFile("picture");
		$check = $upFile->checkFile();
		if ($check !== True)
			return $this->displayForm($team,$check);
		
		$tmpFile = $upFile->getTempName();
		$team->delPicture();
		if ( ! $team->setPicture($tmpFile))
			return $this->displayForm($team,
																"Impossible de manipuler l'image chargée !");
		else {
			$team->update();
			return $this->displayForm($team,"Chargement effectué avec succès");
		}
			
	}
	
	private function displayForm($team, $notification = "") {
		
		$teamId = $team->getId();
		$overview = $team->displayLong();
		$maxFileSize = MAX_FILE_SIZE;
		$button = fManageTeams::getReturnButton($teamId);
		$large = $team->getLargePicture();
		$small = $team->getSmallPicture();
		
		$notify = "";
		if ($notification != "") {
			$notify = "<h2> Notification </h2>";
			$notify .= "<div align=\"center\"> <span class=\"error\">";
			$notify .= $notification . "</span> </div>";
		}
			
		$ret = fManageTeams::getReturnButton($teamId);
		$page = <<<EOS
<h1> Gestion de la photo de groupe </h1>
${overview}
<br />
${ret}
<h2> Photographie d'Équipe </h2>
<div align="center">
<table>
<tr>
<td>
	<fieldset>
		<legend> Modification de la Photographie </legend>
		<br />
		<form method="post" enctype="multipart/form-data" >
		<input type="hidden" name="MAX_FILE_SIZE" value="${maxFileSize}" />
		<br />
		<label> 
			<input type="file" name="picture" class="button" class="edit" />
			&nbsp; &nbsp;
		</label>
		<br />
		
		<input type="hidden" name="teamId" value="${teamId}" />
		<input type="hidden" name="action" value="load" />
		<input type="submit" value="Charger" class="edit" />
		</form>
		&nbsp;&nbsp;&nbsp;&nbsp;
		
		<form method="post" >
		<input type="hidden" name="teamId" value="${teamId}" />
		<input type="hidden" name="action" value="del" />
		<input type="submit" value="Supprimer" class="edit" />
		</form>
		<br /> <br />
		${button}
		<br />  <br />
	</fieldset>
</td>
<td> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </td>
<td align="center">
<a href="${large}" target="_blank">
	<img src="${small}" alt="image actuelle" />
</a>
<br /> <br />
<p> Cliquez sur l'image pour voir la version <strong> haute résolution </strong> de votre photo d'équipe </p>
</td>
</tr>
</table>
</div>
${notify}
<h2> Attention </h2>
<p> Le système Balloon peut uniquement manipuler des images au format suivants, et de taille inférieure a <code>20</code> Mégas : 
  <ul>
  	<li> <span class="error"> JPG </span> </li>
  	<li> <span class="error"> GIF </span> </li>
  	<li> <span class="error"> PNG </span> </li>
  </ul>
</p>

EOS;
		return $page;
	}

}

?>